//会员卡列表
var $membershipCardTable = $('#membershipCardTable');

//防止表头与表格不对齐
$(window).resize(function () {
    $membershipCardTable.bootstrapTable('resetView');
});

//初始化操作
$(function () {

    // 高级筛选创建日期--配置参数
    $('.date-input').datepicker({
        language: "zh-CN",
        autoClose: true,
        clearBtn: true,
        todayHighlight: true,
        format: "yyyy-mm-dd"
    });

    //加载全部公司信息(高级筛选所属分公司下拉)
    loadAllCompanyList();

    //初始化会员卡列表
    membershipCardTableInit();

    // 简单搜索
    $('#btn-search-simple').on('click', function () {
        search.call(this, $membershipCardTable, queryParams);
    });

    // 高级搜索
    $('#btn-search').on('click', function () {
        search($membershipCardTable, advancedQueryParams);
    });

});

/**
 * 会员管理--会员卡列表
 */
function membershipCardTableInit() {
    //先销毁表格
    $membershipCardTable.bootstrapTable('destroy');
    $membershipCardTable.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/memberShipCard/selectMemberShipCardList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'contractId',
        idField: 'contractId',
        pageSize: globalPageSize,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: globalPageList,//可供选择的每页的行数

        fixedColumns: true,     // 冻结列
        fixedNumber: 3,         // 左侧固定列
        fixedRightNumber: 1,    // 右侧固定列

        queryParams: advancedQueryParams,//查询参数
        columns: [
            {title: '主键', field: 'memberCardId', visible: false},
            {title: '序号', field: 'index', align: 'left', valign: 'middle', width: '52', formatter: indexFormat},
            {title: '卡号' ,field: 'memberCardNumber',align: 'left', valign: 'middle', width: '200', class: 'ellipsis'},
            {title: '密码', field: 'memberCardPassword',align: 'left', valign: 'middle'},
            {title: '所属部门', field: 'companyName',align: 'left', valign: 'middle'},
            {title: '卡片类型', field: 'memberCardTypeName',align: 'left', valign: 'middle'},
            {title: '卡片状态', field: 'memberCardStatusName',align: 'left', valign: 'middle'},
            {title: '所属客户', field: 'customerName',align: 'left', valign: 'middle'},
            {title: '客户联系人', field: 'contactName',align: 'left', valign: 'middle'},
            {title: '有效日期', field: 'effectiveDate', align: 'left',valign: 'middle', width: '200', formatter: effectiveDateFormat},
            {title: '操作',field: 'operateFlag',align: 'center', width: '200', formatter: genderOpt},
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            $("[data-toggle='tooltip']").tooltip();
            // table操作列下拉菜单效果
            tableNav();

            /* // table列可拖动宽度
             $('.JCLRgrips').remove();
             $('#customerContractTableList').css({
                 minWidth: $('#customerContractTableList').width()
             }).colResizable({
                 resizeMode: 'overflow',
                 liveDrag: true,
                 gripInnerHtml: "<div class='grip'></div>",
                 draggingClass: "dragging",
                 disabledColumns: [0,1,2,11,12,13],      // 禁止拖动的列
                 postbackSafe: true,            // 刷新后保持拖动的宽度
                 partialRefresh: true,         // 刷新表格之后继续保持可拖动功能
                 flush: true,
                 minWidth: 80,
             });*/
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

/**
 * 会员卡列表--普通搜索查询条件参数
 */
function queryParams(params){
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    params.sortName = params.sort; //排序列名
    params.sortOrder = params.order;//排序方式

    //普通搜索条件(搜索客户)
    params.customerName = $.trim($('#customerName').val());//客户名称

    //会员卡类型
    params.memberCardType = $("input[name='memberCardType']:checked").val();//会员卡类型：1-电子卡；2:实体卡

    //会员卡状态
    params.memberCardStatus = $("input[name='memberCardStatus']:checked").val();//卡片状态：0-未发放；1-已发放

    return params;
}

/**
 * 会员卡列表--高级搜索查询条件参数
 */
function advancedQueryParams(params){
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    params.sortName = params.sort; //排序列名
    params.sortOrder = params.order;//排序方式

    //会员卡类型
    params.memberCardType = $("input[name='memberCardType']:checked").val();;//会员卡类型：1-电子卡；2:实体卡

    //会员卡状态
    params.memberCardStatus = $("input[name='memberCardStatus']:checked").val();//卡片状态：0-未发放；1-已发放

    //清空普通搜索条件(搜索客户)
    $('#customerName').val('');//客户名称

    //卡号
    params.memberCardNumber = $.trim($('#memberCardNumber').val());

    //所属部门
    params.companyId = $('#companySelect option:selected').val();

    //客户联系人
    params.customerContact = $.trim($('#customerContact').val());

    //有效日期起始日期
    params.startTm = $('#createTmStart').val();

    //有效日期截止日期
    params.endTm = $('#createTmEnd').val();

    return params;
}

function resetSearch(_this){
    let searchForm = '';
    if($(_this).parents('#filterContent').context == document) {
        searchForm = $(_this);
    } else {
        searchForm = $(_this).parents('#filterContent');
    }
    searchForm.find('input[type="text"]').val('');
    searchForm.find('select').find('option:first').prop('selected', 'selected');
    searchForm.find('select').selectpicker('refresh');
    if($(_this).parents('#filterContent').context !== document) {
        membershipCardTableInit();
    }
}


/**
 * 会员卡列表--列表序列号
 */
function indexFormat(value, row, index) {
    return index + 1;
}

/**
 * 会员卡列表--自定义操作列内容
 */
function effectiveDateFormat(value, row, index) {
    let html = '';
    if(row.startTm == null && row.endTm == null){
        html += '<div> - </div>';
    }else {
        html += '<div>' + row.startTm +' - ' + row.endTm+ '</div>';
    }
    return html;
}

function genderOpt(value, row, index) {
    let html = '';
    html += '<button class="btn btn-default" id="invalid"><i class="mdi mdi-delete"></i>作废</button>';
    html += '<button class="btn btn-default" id="invalid"><i class="mdi mdi-cards-outline"></i>换卡</button>';
    html += '<button class="btn btn-default" id="invalid"><i class="mdi mdi-format-list-numbers"></i>消/加次</button>';
    return html;
}

//会员卡片类型切换
function memberCardTypeChange(){
    $membershipCardTable.bootstrapTable('refreshOptions', {pageNumber: 1,queryParams: advancedQueryParams});
}

//会员卡片状态切换
function memberCardStatusChange(){
    $membershipCardTable.bootstrapTable('refreshOptions', {pageNumber: 1,queryParams: advancedQueryParams});
}

function timeData(){
    $('#contractDate').daterangepicker({
        startDate: moment().startOf('hour'),
        endDate: moment().startOf('hour').add(24, 'hour'),
        locale: {
            format: 'YYYY-MM-DD',
            cancelLabel: '清空',
        },
        timePicker24Hour : true,
        autoUpdateInput: false,
    });
    $('#contractDate').on('apply.daterangepicker', function(ev, picker) {
        $(this).val(picker.startDate.format('YYYY-MM-DD') + ' 至 ' + picker.endDate.format('YYYY-MM-DD'));
        if($('#customerForm').data('bootstrapValidator')!=undefined){
            $('#customerForm').data('bootstrapValidator')
                .updateStatus('contractDate', 'NOT_VALIDATED',null)
                .validateField('contractDate');
        }

    });
    $('#contractDate').on('cancel.daterangepicker', function(ev, picker) {
        $(this).val('');
    });
}

//显示导入线索模态框
function showImportMemberCardModal(){
    $('#importMemberCardModal').modal('show');
}

//取消导入线索模态框
function cancelImportMemberCardList() {
    $("#importMemberCardFile").val("");
}

//导入线索名单
function importMemberCardList() {
    if(!document.getElementById('importMemberCardFile').files[0]){
        $.alert({
            title: '温馨提示',
            content: '请选择文件！',
        });
        return;
    }
    var fileName = document.getElementById('importMemberCardFile').files[0].name;
    var fileType = fileName.substring(fileName.lastIndexOf("."), fileName.length);
    var formData = new FormData();
    //接口接收参数 键值形式 添加到formData中
    formData.append("file",$("#importMemberCardFile")[0].files[0]);
    if(fileName!="" && (fileType.toLocaleUpperCase()==".XLSX"||fileType.toLocaleUpperCase()==".XLS")){
        $.ajax({
            url: '/memberShipCard/memberShipCardImport',
            type: 'POST',
            dataType:"json",
            contentType:false,
            data: formData,
            processData: false,
            success:(function(data) {
                if(data.code == "000000"){
                    var importNum = data.data.importNum;
                    var repeatIdList = data.data.repeatIdList;
                    var membershipCardEmptyIdList = data.data.membershipCardEmptyIdList;
                    var importFailIdList = data.data.importFailIdList;

                    //返回内容
                    var content = "";

                    //导入数量大于0
                    content = "成功导入"+importNum+"条数据";
                    //会员卡号为空
                    if(membershipCardEmptyIdList!=""){
                        content = content + "<br>第：" + membershipCardEmptyIdList + "行数据卡号为空，导入失败";
                    }
                    //会员卡号重复
                    if(repeatIdList!=""){
                        content = content + "<br>第：" + repeatIdList + "行数据卡号已经存在，导入失败";
                    }
                    //导入失败
                    if(importFailIdList!=""){
                        content = content + "<br>第：" + importFailIdList + "行数据合同导入失败";
                    }


                    $.alert({
                        title: '提示',
                        content: content,
                        buttons: {
                            confirm: {
                                text: '确认',
                                btnClass: 'btn-primary',
                                action: function () {
                                    $("#importMemberCardFile").val("");
                                    $membershipCardTable.bootstrapTable('refresh');
                                }
                            }
                        }
                    });
                    $('#importMemberCardModal').modal('hide');
                    $("#importMemberCardFile").val("");
                }else if(data.code == "CI0001"){
                    $.alert({
                        title: '提示',
                        content: data.message,
                        buttons: {
                            confirm: {
                                text: '确认',
                                btnClass: 'btn-primary',
                                action: function () {
                                    $("#importMemberCardFile").val("");
                                }
                            }
                        }
                    });
                }else{
                    $.alert("导入失败");
                    $("#importMemberCardFile").val("");
                }
            }),
            error:(function() {
                $.alert("导入出错！");
                $("#importMemberCardFile").val("");
            })
        });
    } else {
        $.alert({
            title: '温馨提示',
            content: '请上传.xlsx或.xls文件！',
        });
    }
}

/**
 * 下载模板
 */
function downMemberCardTemplate(){
    var url="/memberShipCard/downloadMemberShipCardTemplate";
    window.location.href=encodeURI(encodeURI(url));
}
